package com.simple.common.entity.controller;

import com.simple.common.entity.ResData;
import com.simple.common.entity.dto.pay.vm.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

import java.io.IOException;

import static com.simple.common.entity.constant.Payment.*;


/**
 * @author yasud
 * @date 2020年10月13日 11:04
 * @description
 **/
public interface VmPay {

    /**
     * 跳转支付
     * @param dto
     * @return
     * @throws IOException
     */
    @PostMapping({VM_REDIRECT_PAY_CODE, VM_REDIRECT_PAY_2_CODE})
    default ResData redirectPay(@RequestBody RedirectPayDto dto) throws IOException {
        return ResData.error("渠道不支持");
    }

    /**
     * 直连支付
     * @param directPayDto
     * @return
     * @throws Exception
     */
    @PostMapping({VM_DIRECT_PAY_CODE, VM_DIRECT_PAY_2_CODE})
    default ResData directPay(@RequestBody DirectPayDto directPayDto) throws Exception {
        return ResData.error("渠道不支持");
    }

    /**
     * 直连支付
     * @param upopPayDto
     * @return
     * @throws Exception
     */
    @PostMapping({VM_UPOP_PAY_CODE})
    default ResData upopPay(@RequestBody UpopPayDto upopPayDto) throws Exception {
        return ResData.error("渠道不支持");
    }

    /**
     * 查询交易
     * @param dto
     * @return
     * @throws IOException
     */
    @PostMapping(VM_QUERY_TRADE_CODE)
    default ResData queryTrade(@RequestBody QueryTradeDto dto) throws IOException {
        return ResData.error("渠道不支持");
    }

    /**
     * 退款
     * @param dto
     * @return
     * @throws IOException
     */
    @PostMapping(VM_REFUND_TRADE_CODE)
    default ResData refund(@RequestBody RefundTradeDto dto) throws IOException {
        return ResData.error("渠道不支持");
    }


}
